﻿function ValidarAutocomplete(IdControl, IdMsj) {
    var IDRecirbidoPor = $(IdControl).val();

    if (IDRecirbidoPor == "" || IDRecirbidoPor == 0)
        $(IdMsj).html('No Registrado');
    else
        $(IdMsj).html('');
}

//function RedirecionURL(IDRegistro,ParamUrl){
//    window.location = ParamUrl+"/"+IDRegistro;
//}

jQuery.fn.cuentaCaracteres = function () {
    //para cada uno de los elementos del objeto jQuery
    this.each(function () {
        //creo una variable elem con el elemento actual, suponemos un textarea
        elem = $(this);
        //creo un elemento DIV sobre la marcha 
        var contador = $('<div>Contador caracteres: ' + elem.attr("value").length + '/1200 </div>');
        //inserto el DIV después del elemento textarea
        elem.after(contador);
        //guardo una referencia al elemento DIV en los datos del objeto jQuery
        elem.data("campocontador", contador);

        //creo un evento keyup para este elemento actual
        elem.keyup(function () {
            //creo una variable elem con el elemento actual, suponemos un textarea
            var elem = $(this);
            //recupero el objeto que tiene el elemento DIV contador asociado al textarea
            var campocontador = elem.data("campocontador");
            //modifico el texto del contador, para actualizarlo con el número de caracteres escritos
            campocontador.text('Contador caracteres: ' + elem.attr("value").length + '/1200');
        });
    });
    //siempre tengo que devolver this
    return this;
};


$(document).ready(function () {
    $("textarea").cuentaCaracteres();
})

//////$('textarea.limited').maxlength({
//////    'feedback': '.charsLeft' // note: looks within the current form
//////});

jQuery.fn.limitMaxlength = function (options) {

    var settings = jQuery.extend({
        attribute: "maxlength",
        onLimit: function () { },
        onEdit: function () { }
    }, options);

    // Event handler to limit the textarea
    var onEdit = function () {
        var textarea = jQuery(this);
        var maxlength = parseInt(textarea.attr(settings.attribute));

        if (textarea.val().length > maxlength) {
            textarea.val(textarea.val().substr(0, maxlength));

            // Call the onlimit handler within the scope of the textarea
            jQuery.proxy(settings.onLimit, this)();
        }

        // Call the onEdit handler within the scope of the textarea
        jQuery.proxy(settings.onEdit, this)(maxlength - textarea.val().length);
    }

    this.each(onEdit);

    return this.keyup(onEdit)
        .keydown(onEdit)
        .focus(onEdit);
}

$(document).ready(function () {

    var onEditCallback = function (remaining) {
        $(this).siblings('.charsRemaining').text("Characters remaining: " + remaining);

        if (remaining > 0) {
            $(this).css('background-color', 'white');
        }
    }

    var onLimitCallback = function () {
        $(this).css('background-color', 'white');
    }

    $('textarea[maxlength]').limitMaxlength({
        onEdit: onEditCallback,
        onLimit: onLimitCallback
    });
});

function InicioJPopUp(selector, ancho, alto, resize, titulo) {
    $(selector).dialog({
        autoOpen: false,
        height: alto,
        width: ancho,
        modal: true,
        resizable: resize,
        hide: 'fade',
        show: 'fade',
        title: titulo
    });
}


$(window).load(
    function () {
        $('input[type="text"]').addClass("textTransform");
        $("textarea").addClass("textTransform");
    }
  );



function validarNumerosLetras(e) { // 1
    tecla = (document.all) ? e.keyCode : e.which; // 2
    if (tecla == 8) return true; // 3
    else if (tecla == 0) return true;
    else if (tecla == 9) return true;
    //else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /^[ 0-9-A-z]*$/;
    //patron = /\w/; // Acepta N(U)meros y Letras
    te = String.fromCharCode(tecla); // 5
    return patron.test(te); // 6
}


function validarNumerosLetrasAC(e) { // 1
    tecla = (document.all) ? e.keyCode : e.which; // 2
    if (tecla == 8) return true; // 3
    else if (tecla == 0) return true;
    else if (tecla == 9) return true;
    //else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /^[ 0-9-A-z]*$/;
    //patron = /\w/; // Acepta N(U)meros y Letras
    te = String.fromCharCode(tecla); // 5
    return patron.test(te); // 6
}

function val_Email(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;

    patron = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    // patron = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

function val_Codigo(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    //else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /[-0-9QWERTYUIOPASDFGHJKLÑZXCVBNMqwertyuiopñlkjhgfdsazxcvbnm\x00\s]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

function val_Descripcion(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    //else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /[&-;,.0-9QWERTYUIOPASDFGHJKLÑZXCVBNMqwertyuiopñlkjhgfdsazxcvbnmáéíóúÁÉÍÓÚ\x00\s\n]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

function val_DescripcionQ(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    //else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /[?¿&-;,.0-9QWERTYUIOPASDFGHJKLÑZXCVBNMqwertyuiopñlkjhgfdsazxcvbnmáéíóúÁÉÍÓÚ\x00\s\n]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

function val_AZ(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    //else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /[QWERTYUIOPASDFGHJKLÑZXCVBNMqwertyuiopñlkjhgfdsazxcvbnmáéíóúÁÉÍÓÚ\x00\s]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}
function val_AZ_Empresa(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    //else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /[QWERTYUIOPASDFGHJKLÑZXCVBNMqwertyuiopñlkjhgfdsazxcvbnmáéíóúÁÉÍÓÚ\x00\S]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}
function val_09(e) {

    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    else if (tecla == 0) return true;
    else if (tecla == 9) return true;
    // else if (tecla == e.keyCode || tecla == e.which) return true;
    patron = /[0-9]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}


function lTrim(sStr) {
    while (sStr.charAt(0) == " ")
        sStr = sStr.substr(1, sStr.length - 1);
    return sStr;
}

function rTrim(sStr) {
    while (sStr.charAt(sStr.length - 1) == " ")
        sStr = sStr.substr(0, sStr.length - 1);
    return sStr;
}

function allTrim(sStr) {
    return rTrim(lTrim(sStr));
}
function validarNull1(e) {
    return (allTrim(e));
}


function ValidarNUll(ID_Textto) {
    var texto = document.getElementById(ID_Textto);
    $("input[id$='" + ID_Textto + "']").val(allTrim(texto.value));
}


function UI_Select(DisplayControl, DropDownControl) {
    $('#' + DisplayControl).text($('#' + DropDownControl + ' option:selected').text());
}

function UI_Select_ClearSubLevel(ArrayControl) {
    var Controls = ArrayControl.split(';');
    for (i = 0; i < Controls.length; i++) {
        //document.getElementById(Controls[i]).options[0].selected = true;
        //$("select#elem")[0].selectedIndex = 0;
    }
}

//Funcion para cargar combos con 0 elementos: 02-04-12
function Load_EmptyDDL(ParamUrl, destino) {

    $.ajax({
        url: ParamUrl,
        type: "post",
        cache: false,
        success: function (data, textStatus, jqXHR) {
            $(destino).html(data);
        },
        error: function (req, status, error) {
        }
    });
}
function msjRequerido(control) {
    //    if ($(control).val()=='') {
    //alert($(control).parent().parent().children().get());
    //    }
}

function InicioJPopUp(selector, ancho, alto, resize, titulo) {
    $(selector).dialog({
        autoOpen: false,
        height: alto,
        width: ancho,
        modal: true,
        resizable: resize,
        hide: 'fade',
        show: 'fade',
        title: titulo,
        zIndex: 9999
    });
}

function InicioJPopUpOpen(selector) {
    $(selector).dialog("open");
}

function InicioJPopUpClose(selector) {
    $(selector).dialog("close");
}


function InicioJPopUpConfirm(selector, ancho, resize, titulo, actionfunction) {
    $(selector).dialog({
        autoOpen: false,
        width: ancho,
        modal: true,
        resizable: resize,
        hide: 'fade',
        show: 'fade',
        title: titulo,
        buttons: {
            "Sí": function () {
                if (actionfunction != null) {
                    actionfunction();
                }
                $(selector).dialog("close");
            },
            "No": function () {
                $(selector).dialog("close");
            }
        }
    });
}

function InicioJPopUpConfirmAlert(selector, ancho, resize, titulo) {
    $(selector).dialog({
        autoOpen: false,
        width: ancho,
        modal: true,
        resizable: resize,
        hide: 'fade',
        show: 'fade',
        title: titulo,
        buttons: {
            "Aceptar": function () {
                $(selector).dialog("close");
            }
        }
    });
}


function InicioJPopUpConfirmOpen(selector) {
    $(selector).dialog('open');
    return false;
}

//CAMBIAR ESTILO ALERT
var ALERT_TITLE = "Confirmación!";
var ALERT_BUTTON_TEXT = "ACEPTAR";

//Anular el método de alerta
if (document.getElementById) {
    window.alert = function (txt) {
        MyAlert(txt);
    }
}


function MyAlert(txt) {
    //Atajo referencia al objeto documento
    d = document;

    // if the modalContainer object already exists in the DOM, bail out.

    if (d.getElementById("modalContainer")) return;

    // create the modalContainer div as a child of the BODY element
    mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
    mObj.id = "modalContainer";
    // make sure its as tall as it needs to be to overlay all the content on the page
    mObj.style.height = document.documentElement.scrollHeight + "px";

    // create the DIV that will be the alert 
    alertObj = mObj.appendChild(d.createElement("div"));
    alertObj.id = "alertBox";
    // MSIE doesnt treat position:fixed correctly, so this compensates for positioning the alert
    if (d.all && !window.opera) alertObj.style.top = document.documentElement.scrollTop + "px";
    // center the alert box
    alertObj.style.left = (d.documentElement.scrollWidth - alertObj.offsetWidth) / 2 + "px";

    // create an H1 element as the title bar
    h1 = alertObj.appendChild(d.createElement("h1"));
    h1.appendChild(d.createTextNode(ALERT_TITLE));

    // create a paragraph element to contain the txt argument
    msg = alertObj.appendChild(d.createElement("p"));
    msg.innerHTML = txt;

    // create an anchor element to use as the confirmation button.
    btn = alertObj.appendChild(d.createElement("a"));
    btn.id = "closeBtn";
    btn.appendChild(d.createTextNode(ALERT_BUTTON_TEXT));
    btn.href = "#";
    // set up the onclick event to remove the alert when the anchor is clicked
    btn.onclick = function () { removeCustomAlert(); }


}

// removes the custom alert from the DOM
function removeCustomAlert() {
    document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));
}

////CAMBIAR ESTILO ALERT END
function Jalert(text, Url) {
    $('#buttonAlert').html(text);
    $('#dialogAlert').css("display", "block");
    $('#dialogAlert').dialog({
        autoOpen: false,
        width: 400,
        modal: true,
        resizable: false,
        hide: 'fade',
        show: 'fade',
        title: 'Mensaje de Validación',
        buttons: {
            "Aceptar": function () {
                $('#dialogAlert').dialog("close");
                if (Url != null)
                    window.location = Url;
            }
        }
    });
    $('#dialogAlert').dialog('option', 'modal', true).dialog('open');
    return true;
}

///     COMPARA FECHAS true: fecha > fecha2

function compare_dates(fecha, fecha2) {
    var xMonth = fecha.substring(3, 5);
    var xDay = fecha.substring(0, 2);
    var xYear = fecha.substring(6, 10);
    var yMonth = fecha2.substring(3, 5);
    var yDay = fecha2.substring(0, 2);
    var yYear = fecha2.substring(6, 10);
    if (xYear > yYear) {
        return (true)
    }
    else {
        if (xYear == yYear) {
            if (xMonth > yMonth) {
                return (true)
            }
            else {
                if (xMonth == yMonth) {
                    if (xDay > yDay)
                        return (true);
                    else
                        return (false);
                }
                else
                    return (false);
            }
        }
        else
            return (false);
    }
}


function CreateUrl(Action, Controller) {
    var Url = '';
    var UrlAcionResult = '';
    var ParamUrl = $('#UrlActionGen').val();
    Url = ParamUrl.toString().replace('Home', Controller);
    UrlAcionResult = Url.toString().replace('Index', Action);
    return UrlAcionResult;
}
$.fn.limpiarFormularios = function () {
    return this.each(function () {
        $('input,select,textarea', this).limpiarCampos();
    });
};
$.fn.limpiarCampos = function () {
    return this.each(function () {
        var t = this.type, tag = this.tagName.toLowerCase();
        if (t == 'text' || t == 'password' || tag == 'textarea')
            this.value = '';
        else if (t == 'checkbox' || t == 'radio')
            this.checked = false;
        else if (tag == 'select') {
            this.selectedIndex = 0;
            this.parentNode.firstChild.innerHTML = this.firstChild.innerHTML
        }
    });
};
var showConfirm = function (msg, funcion) {
    if ($("#PopupMj").length == 0) {
        var div = document.createElement("DIV");
        div.appendChild(document.createElement("P"));
        div.setAttribute("ID", "PopupMj");
        $(div).attr({ "class": "j_modal", "title": "Competencia" });
        document.body.appendChild(div);
    }
    $("#PopupMj").html(msg);
    $("#PopupMj").dialog({
        autoOpen: false,
        resizable: false,
        width: 400,
        modal: true,
        buttons: [{
            text: "Si",
            click: function () {
                funcion();
                $(this).dialog("close");
                $(this).find("p").html("");
            }
        }, {
            text: "No",
            click: function () {
                $(this).dialog("close");
                $(this).find("p").html("");
            }
        }]
    }).dialog('open');
}


function val_SoloDeciamles(e, field) {
    key = e.keyCode ? e.keyCode : e.which
    // backspace
    if (key == 8) return true
    // 0-9
    if (key > 47 && key < 58) {
        if (field.value == '') return true
        regexp = /[0-9].[0-9]{1}$/
        return !(regexp.test(field.value))
    }
    // ,
    if (key == 46) {
        if (field.value == '') return false
        regexp = /^[0-9]+$/
        return regexp.test(field.value)
    }
    // other key
    return false

}